<?php
//测试控制器类
class ProductController extends CommonController{
	//保存实例化模型对象
    private $_model;
    //构造函数
    public function __init(){
        $this->_model=K('Product');
    }
    //动作方法
    public function index(){

    	//获得商品id,查询商品信息
    	$data=K('ProductDataView')->get_one_data(array('sn_product.pr_id'=>Q('get.pr_id',0,'intval')));
		$small=explode(',', $data['pr_small_pic'] );//小图数组
		$this->assign('small',$small);
		$mid=explode(',', $data['pr_mid_pic'] );//中图数组
		$this->assign('mid',$mid);
		$big=explode(',', $data['pr_big_pic'] );//大图数组
		$this->assign('big',$big);
        $this->assign('product',$data);//商品信息	
        //获得所有父级(面包屑)
        //1获得所有分类
        $cate=K('Category')->get_all_data();
        //2当前分类id
        $son_pid=Q('get.cid',0,'intval');
        //3当前分类的pid   
        if ($son_pid==0) {
            $pid=0;
        }else{
            $cateMes=K('Category')->get_one_data(array('cid'=>$son_pid));
            $pid=$cateMes['pid'];  
        }
        //3查询所有父级
        $father=K('Category')->get_father($cate,$pid);
        $father[]=$cateMes;//把当前所属商品分类压入
        
        $this->assign('father',$father);//所有祖先级，包括自己
        $this->assign('cate',$cateMes['cname']);//当前分类

        $cateSame=K('Category')->get_all_data(array('pid'=>$pid));//查询同级别的分类(相关分类)
        $this->assign('category',$cateSame);
		
		//同品牌下的商品
		$rid=$data['rand_rid'];//品牌id
		$cid=$data['category_cid'];//分类id
		$sameRand=$this->_model->get_all_data(array('rand_rid'=>$rid));
		$this->assign('samerand',$sameRand);
		//同分类下的商品
		$sameCate=$this->_model->get_all_data(array('category_cid'=>$cid));
		$this->assign('samecate',$sameCate);
		
		//商品颜色和规格
		//1商品类型属性,类型为1的，可以多选的
		$type=K('TypeAttr')->get_all_data(array('tattr_type'=>1));
		foreach ($type as $k => $v) {
			//商品类型属性id,所有
			$type_id[]=$v['id'];
			$tattr_name=$v['tattr_name']; //规格名称
			//商品属性表，商品所有规格
			$arr[]=K('ProductAttr')->get_all_data(array('pro_id'=>Q('get.pr_id'),'type_attrid'=>$v['id']));
		}
		foreach ($arr as $k => $v) {
			//重组数组，按规格类型分组，需要组合的两个子数组的形式
			//用来传入笛卡儿积计算方法
			foreach ($v as $key => $value) {
				$id=$value['id'];
				$arr2[$k][$id]=$value['pvalue'];
			}
		}
	
		
		//颜色
		$color=$arr2[1];
		//规格
		$size=$arr2[0];
//		p($color);
//		p($size);
		$this->assign('color',$color);
		$this->assign('size',$size);
  		
        //显示视图
        $this->dis('product');
    }

	//点击规格，获得附加价格
	public function ajax_get_price(){
		
		$id=Q('post.id');
		//查询货品表所有的商品规格组合,查询库存数据
		$list=K('List')->get_all_data(array('list_id'=>$id));
		$id=explode(',', $id);
		$price=0;
		$strr='';
//		p($list);
		//所选规格和颜色的附加价格
		foreach ($id as $k=>$v) {	
			$arr[]=K('ProductAttr')->where(array('id'=>$v))->find();
		}
		//所有附加价格的和
		foreach ($arr as $k => $v) {
			$price+=$v['add_price'];
			//所选规格组合
			$strr .=' "'.$v['pvalue'].'" ';
		}
		//那需要的附加价格和字符串压到数组反出
		$data=array('price'=>$price,'strr'=>$strr);	
//		p($data);
		$this->ajax($data);
		
	}
}
